﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;


using System.Data.SqlClient;
using System.Data.SqlTypes;


namespace LibrarySystem
{
    public partial class Accounting_form : Form
    {
        SqlConnection Connection_Main = new SqlConnection();
        
        AppManager LIB = new AppManager();
        //==========================##1
        string User;
        //==========================##1
        public Accounting_form(string Name)
        {
            InitializeComponent();

            //==========================##1
            User = Name;
            //==========================##1
        }

        int a;
        float b;
        float c, d, e, f;
        private void button1_Click(object sender, EventArgs e)
        {
            Form1 F1 = new Form1();
            F1.Show();
            this.Hide();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if ((MessageBox.Show("هل تريد الخروج من البرنامج؟", "خروج", MessageBoxButtons.YesNo)) == System.Windows.Forms.DialogResult.Yes)
            {
                Application.Exit();
            }
            // Application.Exit();
        }

        private void Accounting_form_Load(object sender, EventArgs e)
        {
            timer1.Start();
            TimeLogin.Text = DateTime.Now.ToLongTimeString();
            day.Text = DateTime.Now.DayOfWeek.ToString();
            date.Text = DateTime.Now.Date.ToShortDateString();
            //==========================##1
            UserName.Text = User;
            textBox2.Text = User;
            //==========================##1

            //LIB.ComboDisplay(comboBox5, "select * from alssafa.dbo.BOOKS ", "BOOKS", "كود_الكتاب");
            //comboBox5.Text = "اختر الكود";
        }

        private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            Form1 F1 = new Form1();
            F1.Show();
            this.Hide();
        }

        private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            if ((MessageBox.Show("هل تريد الخروج من البرنامج؟", "خروج", MessageBoxButtons.YesNo)) == System.Windows.Forms.DialogResult.Yes)
            {
                Application.Exit();
            }
        }

        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            AccountSettings AS = new AccountSettings(User);
            AS.ShowDialog();
        }

        private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            ModifyData MD = new ModifyData(User);
            MD.ShowDialog();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            //textBox3.Text = DateTime.Now.Date.ToString("dd-MM-yyyy");
            //textBox9.Text = DateTime.Now.ToString("HH:mm:ss");
        }

        private void button3_Click(object sender, EventArgs e)
        {
            label27.Text = "";
            //LIB.ComboDisplay(comboBox5, "select * from alssafa.dbo.BOOKS ", "BOOKS", "كود_الكتاب");
            //comboBox5.Text = "اختر الكود";
            textBox5.Clear();
            textBox12.Clear();
            dataGridView1.ClearSelection();
            if (textBox1.Text.Length > 0)
            {
                textBox3.Text = DateTime.Now.Date.ToString("MM-dd-yyyy");
                textBox9.Text = DateTime.Now.ToString("HH:mm:ss");
                LIB.insert("insert into alssafa.dbo.Bill values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox9.Text + "',null,null,null,null)");
                LIB.ComboDisplayChoose3(comboBox1, "select * from alssafa.dbo.Bill where اسم_العميل='" + textBox1.Text + "' AND اسم_المحاسب='" + textBox2.Text + "' AND التاريخ='" + textBox3.Text + "' AND وقت_الفاتورة ='" + textBox9.Text + "'", "Bill", "رقم_الفاتورة", label15);
                label17.Text = textBox1.Text;
                label19.Text = textBox2.Text;
                label16.Text = textBox3.Text;
                label18.Text = textBox9.Text;
                textBox1.Clear();
                textBox3.Clear();
                textBox9.Clear();
                textBox11.Clear();
                textBox5.Text = "1";
                textBox6.Clear();
                textBox7.Clear();
                textBox4.Clear();
                dataGridView1.Refresh();
                textBox12.Clear();
                textBox10.Clear();

                textBox15.Clear();

            }
            else
                label27.Text = "من فضلك أدخل اسم العميل";
        }

        private void textBox3_TextChanged(object sender, EventArgs e)
        {
            //textBox9.Text = DateTime.Now.ToShortTimeString();
        }

        private void comboBox5_TextChanged(object sender, EventArgs e)
        {
            //comboBox5.AutoCompleteMode.ToString();
            //textBox5.aut
        }

        private void comboBox5_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void comboBox5_KeyPress(object sender, KeyPressEventArgs e)
        {
            //if (e.KeyChar == 13)
            //{
            //    LIB.ComboDisplayChoose(comboBox6, "Select * FROM alssafa.dbo.BOOKS where كود_الكتاب = '" + comboBox5.Text + "'", "BOOKS", "إسم_الكتاب", textBox6);
            //    LIB.ComboDisplayChoose(comboBox7, "Select * FROM alssafa.dbo.BOOKS where كود_الكتاب = '" + comboBox5.Text + "'", "BOOKS", "سعر_الكتاب", textBox7);
            //    if (textBox6.Text.Length < 1 || textBox7.Text.Length < 1)
            //    {
            //        label29.Text = "هذا الكتاب غير موجود";
            //    }
            //    else
            //        label29.Text = "";

            //}
        }

        private void textBox5_TextChanged(object sender, EventArgs e)
        {




            try
            {
                if (textBox5.Text == "" || textBox7.Text == "")
                {
                    a = 0;
                    b = 0;
                    textBox8.Text = Convert.ToString(a * b);
                }
                else
                {
                    a = int.Parse(textBox5.Text);
                    b = float.Parse(textBox7.Text);
                    textBox8.Text = Convert.ToString(a * b);
                }
            }
            catch (System.FormatException E)
            {
                label29.Text = "الرقم المدخل غير صحيح";
            }

            catch (System.OverflowException)
            {
                label29.Text = "لا يمكن إدخال هذا الرقم";
            }
            
            
            
        }

        private void textBox7_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (textBox5.Text == "" || textBox7.Text == "")
                {
                    a = 0;
                    b = 0;
                    textBox8.Text = Convert.ToString(a * b);
                }
                else
                {
                    a = int.Parse(textBox5.Text);
                    b = float.Parse(textBox7.Text);
                    textBox8.Text = Convert.ToString(a * b);
                }
            }
            catch (System.FormatException E)
            {
                label29.Text = "الرقم المدخل غير صحيح";
            }
        }

        private void button5_Click(object sender, EventArgs e)
        {
            if (dataGridView1.RowCount.Equals(10))
            {
                //label29.Text = "قم بإصدار فاتورة جديدة ...عدد الأصناف تخطى 10 أصناف";
                MessageBox.Show("قم بإصدار فاتورة جديدة ...عدد الأصناف 10 أصناف");

            }
            else
            {
                if (label15.Text.Length > 0)
                {
                    if (textBox6.Text.Length > 0)
                    {
                        if (textBox5.Text.Length>0)
                        {
                            try
                            {
                                int data = int.Parse(textBox5.Text);
                                if (int.Parse(textBox5.Text) > 0)
                                {
                                    //LIB.ComboDisplay(comboBox9, "select * from BOOKS where كود_الكتاب = '" + textBox11.Text + "'", "BOOKS", "اجمالي_النسخ");
                                    if (int.Parse(textBox5.Text) <= int.Parse(textBox15.Text))
                                    {
                                        LIB.GridDisplay(dataGridView1, "Invoice_Details", "select كود_الكتاب,اسم_الكتاب,سعر_الكتاب,الكمية,الإجمالي from Invoice_Details where رقم_الفاتورة = " + label15.Text + " AND كود_الكتاب ='" + textBox11.Text + "' ");
                                        if (dataGridView1.RowCount == 0)
                                        {
                                            textBox10.Clear();
                                            label29.Text = "";
                                            LIB.insertBill("insert into alssafa.dbo.Invoice_Details values('" + textBox11.Text + "'," + label15.Text + ",'" + textBox6.Text + "'," + textBox7.Text + "," + textBox5.Text + "," + textBox8.Text + ")");
                                            LIB.GridDisplay(dataGridView1, "Invoice_Details", "select كود_الكتاب,اسم_الكتاب,سعر_الكتاب,الكمية,الإجمالي from Invoice_Details where رقم_الفاتورة = " + label15.Text + "");
                                            LIB.FunSUM("Select SUM(الإجمالي) FROM alssafa.dbo.Invoice_Details WHERE رقم_الفاتورة = " + label15.Text + " ", label20);
                                            textBox12.Text = label20.Text;
                                            //int y, z;
                                            //y = int.Parse(textBox5.Text);
                                            //z = int.Parse(textBox15.Text);
                                            TotalOfBook.Text = Convert.ToString((int.Parse(textBox15.Text)) - (int.Parse(textBox5.Text)));
                                            textBox4.Text = dataGridView1.RowCount.ToString();
                                            LIB.update("UPDATE BOOKS SET اجمالي_النسخ=" + TotalOfBook.Text + " where كود_الكتاب='" + textBox11.Text + "'");
                                            LIB.update("UPDATE alssafa.dbo.Bill SET مجموع_الفاتورة=" + label20.Text + " where رقم_الفاتورة=" + label15.Text + "");
                                            LIB.update("UPDATE alssafa.dbo.Bill SET  عدد_الأصناف= " + textBox4.Text + "  where  رقم_الفاتورة=" + label15.Text + " ");
                                            //=============================
                                            comboBox8.Text = "0";
                                            c = float.Parse(label20.Text);
                                            d = float.Parse(comboBox8.Text);
                                            textBox10.Text = Convert.ToString(c - (c * (d / 100)));
                                            //LIB.update("UPDATE alssafa.dbo.Bill SET مجموع_الفاتورة=" + label20.Text + " where رقم_الفاتورة=" + label15.Text + "");
                                            LIB.update("UPDATE alssafa.dbo.Bill SET نسبة_الخصم=" + comboBox8.Text + " where رقم_الفاتورة=" + label15.Text + "");
                                            LIB.update("UPDATE alssafa.dbo.Bill SET الإجمالي_بعد_الخصم=" + textBox10.Text + " where رقم_الفاتورة=" + label15.Text + "");
                                        }
                                        else
                                            label29.Text = "هذا الصنف مضاف مسبقا";
                                    }
                                    else
                                        label29.Text = "هذه الكمية غير متوفرة";


                                }
                                else
                                    label29.Text = "أدخل رقم الكمية";
                            }
                            catch
                            {
                                label29.Text = "أدخل رقم صحيح في خانة الكمية";
                            }
                        }
                        else
                            label29.Text = "أدخل رقم الكمية";
                    }
                    else
                        label29.Text = "أدخل كود الكتاب";
                }
                else
                    label29.Text = "قم بإصدار رقم للفاتورة";

                textBox4.Text = dataGridView1.RowCount.ToString();
            }
        }

        private void TotalBefore_Click(object sender, EventArgs e)
        {
            if (label15.Text.Length > 0)
            {
                if (dataGridView1.RowCount.Equals(0))
                {
                    label29.Text = "أضف أصناف الى الفاتورة";
                }
                else
                {
                    LIB.FunSUM("Select SUM(الإجمالي) FROM alssafa.dbo.Invoice_Details WHERE رقم_الفاتورة = " + label15.Text + " ", label20);
                    textBox12.Text = label20.Text;
                }
            }
            else
                label29.Text = "قم بإصدار رقم الفاتورة";
        }

        private void button8_Click(object sender, EventArgs e)
        {
            if (label20.Text.Length > 0)
            {
                if (comboBox8.Text.Length == 0)
                {
                    comboBox8.Text = "0";
                }
                c = float.Parse(label20.Text);
                d = float.Parse(comboBox8.Text);
                textBox10.Text = Convert.ToString(c - (c * (d / 100)));
                //LIB.update("UPDATE alssafa.dbo.Bill SET مجموع_الفاتورة=" + label20.Text + " where رقم_الفاتورة=" + label15.Text + "");
                LIB.update("UPDATE alssafa.dbo.Bill SET نسبة_الخصم=" + comboBox8.Text + " where رقم_الفاتورة=" + label15.Text + "");
                LIB.update("UPDATE alssafa.dbo.Bill SET الإجمالي_بعد_الخصم=" + textBox10.Text + " where رقم_الفاتورة=" + label15.Text + "");
                //LIB.update("UPDATE alssafa.dbo.Bill SET عدد_الأصناف=" + textBox4.Text + " where رقم_الفاتورة=" + label15.Text + "");
            }
            else
                label29.Text = "قم بحساب اجمالي الفاتورة قبل الخصم";
        }

        private void textBox11_TextChanged(object sender, EventArgs e)
        {
            textBox5.Clear();
            textBox6.Clear();
            textBox7.Clear();
            textBox8.Clear();
            textBox15.Clear();
        }

        private void textBox11_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
            {
                LIB.ComboDisplayChoose(comboBox6, "Select * FROM alssafa.dbo.BOOKS where كود_الكتاب = '" + textBox11.Text + "'", "BOOKS", "إسم_الكتاب", textBox6);
                LIB.ComboDisplayChoose(comboBox7, "Select * FROM alssafa.dbo.BOOKS where كود_الكتاب = '" + textBox11.Text + "'", "BOOKS", "سعر_الكتاب", textBox7);
                LIB.ComboDisplayChoose(comboBox9, "select * from BOOKS where كود_الكتاب = '" + textBox11.Text + "'", "BOOKS", "اجمالي_النسخ", textBox15);
                if (textBox6.Text.Length < 1 || textBox7.Text.Length < 1)
                {
                    label29.Text = "هذا الكتاب غير موجود";
                }
                else
                    label29.Text = "";
 

            }

            
        }

        private void button4_Click(object sender, EventArgs e)
        {
            if (label15.Text.Length > 0)
            {
                if (textBox10.Text.Length > 0)
                {
                    string NoBill;
                    NoBill = label15.Text;
                    PrintBill PB = new PrintBill(NoBill);
                    PB.ShowDialog();
                }
                else
                    MessageBox.Show("احسب الإجمالي بعد الخصم");
            }
            else
                MessageBox.Show("قم بإصدار الفاتورة أولا");
        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            label33.Text = DateTime.Now.ToString();
        }

        //private void button7_Click(object sender, EventArgs e)
        //{
        //    if (textBox13.Text.Length > 0)
        //    {
        //        label36.Text = "";
        //        LIB.GridDisplay(dataGridView1, "Invoice_Details", "select كود_الكتاب,اسم_الكتاب,سعر_الكتاب,الكمية,الإجمالي from Invoice_Details where رقم_الفاتورة = " + textBox13.Text + "");
        //        if (dataGridView1.RowCount < 0)
        //        {
        //            label36.Text = "رقم الفاتورة غير موجود";
        //        }
        //        else if (dataGridView1.RowCount == 0)
        //            label36.Text = "الفاتورة فارغة";
        //        else
        //            label36.Text = "";
        //    }
        //    else
        //        label36.Text = "أدخل رقم الفاتورة";
        //}

        //private void button6_Click(object sender, EventArgs e)
        //{
        //    if (textBox13.Text.Length > 0)
        //    {
        //        string NoBill;
        //        NoBill = textBox13.Text;
        //        PrintBill PB = new PrintBill(NoBill);
        //        PB.ShowDialog();
        //    }
        //    else
        //        MessageBox.Show("قم بإصدار الفاتورة أولا");
        //}

        private void linkLabel5_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            TotalBillDay TBD = new TotalBillDay(User);
            TBD.ShowDialog();
        }

        private void button9_Click(object sender, EventArgs e)
        {
            if (label15.Text.Length > 0)
            {
                if (textBox16.Text.Length > 0)
                {
                    LIB.GridDisplay(dataGridView1, "Invoice_Details", "select كود_الكتاب,اسم_الكتاب,سعر_الكتاب,الكمية,الإجمالي from Invoice_Details where رقم_الفاتورة = " + label15.Text + " AND كود_الكتاب = '" + textBox16.Text + "'");
                    if (dataGridView1.RowCount > 0)
                    {
                        LIB.ComboDisplayChoose(TotalOfBookDel, "select * from Invoice_Details where رقم_الفاتورة = " + label15.Text + " AND كود_الكتاب='" + textBox16.Text + "'", "Invoice_Details", "الكمية", TotalOfBookDelTEXT);
                        LIB.ComboDisplayChoose(TotalOfBookNow, "select * from BOOKS where كود_الكتاب='" + textBox16.Text + "'", "BOOKS", "اجمالي_النسخ", TotalOfBookNowTEXT);
                        TotalOfBook.Text = Convert.ToString((int.Parse(TotalOfBookNowTEXT.Text)) + (int.Parse(TotalOfBookDelTEXT.Text)));
                        LIB.update("UPDATE BOOKS SET اجمالي_النسخ=" + TotalOfBook.Text + " where كود_الكتاب='" + textBox16.Text + "'");


                        LIB.delete("DELETE from Invoice_Details  where رقم_الفاتورة = " + label15.Text + " AND كود_الكتاب='" + textBox16.Text + "'");
                        LIB.GridDisplay(dataGridView1, "Invoice_Details", "select كود_الكتاب,اسم_الكتاب,سعر_الكتاب,الكمية,الإجمالي from Invoice_Details where رقم_الفاتورة = " + label15.Text + "");

                        textBox10.Clear();
                        textBox4.Text = dataGridView1.RowCount.ToString();
                        LIB.FunSUM("Select SUM(الإجمالي) FROM alssafa.dbo.Invoice_Details WHERE رقم_الفاتورة = " + label15.Text + " ", label20);
                        if (label20.Text == "")
                        {
                            label20.Text = "0";
                        }
                        textBox12.Text = label20.Text;
                        LIB.update("UPDATE alssafa.dbo.Bill SET مجموع_الفاتورة=" + label20.Text + " where رقم_الفاتورة=" + label15.Text + "");
                        LIB.update("UPDATE alssafa.dbo.Bill SET  عدد_الأصناف= " + textBox4.Text + "  where  رقم_الفاتورة=" + label15.Text + " ");

                        //============================
                        comboBox8.Text = "0";
                        if (label20.Text == "")
                        {
                            label20.Text = "0";
                        }
                        c = float.Parse(label20.Text);
                        d = float.Parse(comboBox8.Text);
                        textBox10.Text = Convert.ToString(c - (c * (d / 100)));
                        //LIB.update("UPDATE alssafa.dbo.Bill SET مجموع_الفاتورة=" + label20.Text + " where رقم_الفاتورة=" + label15.Text + "");
                        LIB.update("UPDATE alssafa.dbo.Bill SET نسبة_الخصم=" + comboBox8.Text + " where رقم_الفاتورة=" + label15.Text + "");
                        LIB.update("UPDATE alssafa.dbo.Bill SET الإجمالي_بعد_الخصم=" + textBox10.Text + " where رقم_الفاتورة=" + label15.Text + "");
                                    

                    }
                    else
                        label29.Text = "هذا الصنف غير موجود بالفاتورة";
                }
                else
                    label29.Text = "قم بإدخال كود الصنف المرد حذفه ";
            }
            else
                label29.Text = "قم بإصدار الفاتورة";
        }

        private void button10_Click(object sender, EventArgs e)
        {
            DeleteOfBill DOB = new DeleteOfBill();
            DOB.ShowDialog();
            label15.Text = "";
            label16.Text = "";
            label17.Text = "";
            label18.Text = "";
            label19.Text = "";
            label20.Text = "";
            textBox4.Clear();
            textBox10.Clear();
            textBox11.Clear();
            textBox12.Clear();
            //dataGridView1.ClearSelection();
            //dataGridView1.Refresh();
            dataGridView1.Update();

        }

        private void button11_Click(object sender, EventArgs e)
        {
            ShowBill DOB = new ShowBill();
            DOB.ShowDialog();
        }

        private void button6_Click(object sender, EventArgs e)
        {
            label15.Text = "";
            label16.Text = "";
            label17.Text = "";
            label18.Text = "";
            label19.Text = "";
            label20.Text = "";
            textBox4.Clear();
            textBox10.Clear();
            textBox11.Clear();
            textBox12.Clear();
        }
    }
}
